package fibonacci

var fibCache = make(map[int]int) // 定义一个全局缓存来存储计算结果

func FibWithCache(n int) int {
	if n <= 1 {
		return n
	}

	// 检查缓存中是否已经计算过该值
	if val, ok := fibCache[n]; ok {
		return val
	}

	// 如果缓存中没有，则进行递归计算
	result := FibWithCache(n-1) + FibWithCache(n-2)

	// 将计算结果存入缓存
	fibCache[n] = result

	return result
}
